import java.util.List;
import java.util.ArrayList;

// Student类（继承Person）
public class Student extends Person {
    // 存储选课列表的属性
    private List<Course> selectedCourses = new ArrayList<>();

    // 构造方法
    public Student(String id, String name) {
        super(id, name);
    }

    // 选课功能
    public void selectCourse(Course course) {
        if (!selectedCourses.contains(course)) {
            selectedCourses.add(course);
            System.out.println("成功选择课程：" + course.getCourseName());
        } else {
            System.out.println("已选该课程，无需重复选择");
        }
    }

    // 新增：退课功能
    public void dropCourse(Course course) {
        if (selectedCourses.contains(course)) {
            selectedCourses.remove(course);
            System.out.println("成功退选课程：" + course.getCourseName());
        } else {
            System.out.println("未选该课程，无法退选");
        }
    }

    // 重写打印方法
    @Override
    public void printWorksheet() {
        super.printWorksheet();
        System.out.println("学生当前选课列表：");
        if (selectedCourses.isEmpty()) {
            System.out.println("暂无选课");
            return;
        }
        for (Course course : selectedCourses) {
            System.out.println("- " + course.getCourseName() + "（课程ID：" + course.getCourseId() + "）");
        }
    }
}